import java.io.*;
import java.lang.reflect.Field;

//根据解析得到的uri判断请求的资源是否存在，存在做出相应，不存在404
public class MyHttpResponse {
    private OutputStream outputStream;

    public MyHttpResponse(OutputStream outputStream) {
        this.outputStream = outputStream;
    }
    public void sendRedirect(String uri){
        //判断uri是否存在，是否再目标工程中
        //不存在返回404
        //存在，直接返回目标资源

        //得到请求资源的整体路径
        String path=System.getProperty("user.dir")+"/WebContent"+ uri;
        //根据路径创建一个file对象
        File file=new File(path);
        //判断文件是否存在
        if(file.exists()){
            try {
                //存在返回目标资源数据,根据目标资源路径，获取资源
                FileInputStream fileInputStream=new FileInputStream(file);
                byte[] bytes=new byte[(int)file.length()];
                fileInputStream.read(bytes);
                //得到资源内容
                String result =new String(bytes);
                //返回浏览器能显示的格式
                String response=getResponseMessage("200",result);
                this.outputStream.write(response.getBytes());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }else {
            try {
                //不存在返回404，getResponseMessage返回浏览器能显示的格式
                String error=getResponseMessage("404","404 File Not Found!");
                this.outputStream.write(error.getBytes());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    //返回浏览器能显示的格式
    public String getResponseMessage(String code,String message){
        return "HTTP/1.1"+code+"\r\n"
                +"Content-type:text/html\r\n"
                +"Content-Length:"+message.length()
                +"\r\n"
                +"\r\n"
                +message;
    }
}
